package com.yuandian.management.mapper;

import com.yuandian.api.management.entity.*;
import com.yuandian.management.vo.ModuleBaseConfigVo;
import com.yuandian.management.vo.flow.OriginalDataFilterEntity;
import com.yuandian.management.vo.ModuleNetworkAgentVo;
import com.yuandian.management.vo.flowConf.pojo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 描述:
 *
 * @author lxixi
 * @create 2023-06-02 15:05
 */
@Mapper
public interface FlowConfMapper {
	/**
	 * 区域信息
	 *
	 * @return
	 */
	List<ConfArea> getAreaInfo();

	/**
	 * <营业厅编号, 区域编码>
	 *
	 * @return
	 */
	List<Map<String, String>> getBusinessHallAreaMap();

	/**
	 * 渠道信息
	 *
	 * @return
	 */
	List<ConfChannelMapping> getChannelMappingInfo();

	/**
	 * 已确认的服务资源
	 *
	 * @return
	 */
	List<ConfResource> getConfirmedResource();

	/**
	 * 系统网端组件关系
	 *
	 * @param segmentTypes 需要查询的网端类型列表
	 * @return
	 */
	List<SegmentComponentRelation> getSegmentComponentRelation(@Param("segmentTypes") List<String> segmentTypes);

	/**
	 * 专属指标配置
	 *
	 * @return
	 */
	List<ExclusiveIndicator> queryExclusiveIndicatorList();

	/**
	 * 查询系统-业务-步骤配置
	 *
	 * @return
	 */
	List<SysBusiStepRelation> querySysBusiStepConfigList();


	/**
	 * 操作员配置信息
	 *
	 * @return
	 */
	List<EmployeeEntity> queryEmployeeList();

	/**
	 * 仅包含类型为LOAD(1)和STEP(0)的白名单
	 *
	 * @return
	 */
	List<String> queryLoadAndStepWhiteList();

	/**
	 * 模块配置信息
	 *
	 * @return
	 */
	List<ModuleBaseConfigVo> queryModuleConf();

	/**
	 * 步骤sessionId回填专属指标配置
	 *
	 * @return
	 */
	List<SessionIdFillBack> querySessionIdFillBackList();

	/**
	 * 查询步骤顺序
	 *
	 * @return
	 */
	List<ConfStep> queryStepSequence();

	/**
	 * 查询系统-业务-步骤关系
	 *
	 * @return
	 */
	List<SysBusiStepRelation> querySystemBusiStepRelationList();

	/**
	 * 查询业务服务资源发现黑名单配置
	 *
	 * @return
	 */
	List<String> queryWebFilterList();

	/**
	 * 查询白名单配置
	 *
	 * @return
	 */
	List<ConfResourceWhitelist> queryWhiteList();

	/**
	 * 查询网端与业务服务资源存在配置
	 *
	 * @return
	 */
	List<String> querySegmentResourceExistList();


	/**
	 * 查询network agent
	 *
	 * @return
	 */

	List<ModuleNetworkAgentVo> queryNetworkAgentList();


	/**
	 * 实时流查询原始包捕获规则
	 * @return
	 */
	List<OriginalDataFilterEntity> getOriDataFilterList();
}
